Special case scroll events so that they propagate up the widget heirarchy
authorOwen Taylor <otaylor@redhat.com>
Wed, 3 Mar 2004 22:27:11 +0000 (22:27 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Wed, 3 Mar 2004 22:27:11 +0000 (22:27 +0000)
Wed Mar  3 17:20:15 2004  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkmain.c (gtk_propagate_event): Special case
        scroll events so that they propagate up the widget
        heirarchy when received on insensitive widgets.
        (#101102, reported by Geoff Reedy)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkmain.c

index 497758aa92cd8bb3aaf7eaeb68b2d253f0ffed38..5ed99452e085c8d18e8dc175df6a0367a0a31a7a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Wed Mar  3 17:20:15 2004  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkmain.c (gtk_propagate_event): Special case
+       scroll events so that they propagate up the widget
+       heirarchy when received on insensitive widgets.
+       (#101102, reported by Geoff Reedy)
+
 Wed Mar  3 16:47:10 2004  Owen Taylor  <otaylor@redhat.com>
 
         #109594, reported by Olivier Ripoll
index 497758aa92cd8bb3aaf7eaeb68b2d253f0ffed38..5ed99452e085c8d18e8dc175df6a0367a0a31a7a 100644 (file)
@@ -1,3 +1,10 @@
+Wed Mar  3 17:20:15 2004  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkmain.c (gtk_propagate_event): Special case
+       scroll events so that they propagate up the widget
+       heirarchy when received on insensitive widgets.
+       (#101102, reported by Geoff Reedy)
+
 Wed Mar  3 16:47:10 2004  Owen Taylor  <otaylor@redhat.com>
 
         #109594, reported by Olivier Ripoll
index 497758aa92cd8bb3aaf7eaeb68b2d253f0ffed38..5ed99452e085c8d18e8dc175df6a0367a0a31a7a 100644 (file)
@@ -1,3 +1,10 @@
+Wed Mar  3 17:20:15 2004  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkmain.c (gtk_propagate_event): Special case
+       scroll events so that they propagate up the widget
+       heirarchy when received on insensitive widgets.
+       (#101102, reported by Geoff Reedy)
+
 Wed Mar  3 16:47:10 2004  Owen Taylor  <otaylor@redhat.com>
 
         #109594, reported by Olivier Ripoll
index 497758aa92cd8bb3aaf7eaeb68b2d253f0ffed38..5ed99452e085c8d18e8dc175df6a0367a0a31a7a 100644 (file)
@@ -1,3 +1,10 @@
+Wed Mar  3 17:20:15 2004  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkmain.c (gtk_propagate_event): Special case
+       scroll events so that they propagate up the widget
+       heirarchy when received on insensitive widgets.
+       (#101102, reported by Geoff Reedy)
+
 Wed Mar  3 16:47:10 2004  Owen Taylor  <otaylor@redhat.com>
 
         #109594, reported by Olivier Ripoll
index 497758aa92cd8bb3aaf7eaeb68b2d253f0ffed38..5ed99452e085c8d18e8dc175df6a0367a0a31a7a 100644 (file)
@@ -1,3 +1,10 @@
+Wed Mar  3 17:20:15 2004  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkmain.c (gtk_propagate_event): Special case
+       scroll events so that they propagate up the widget
+       heirarchy when received on insensitive widgets.
+       (#101102, reported by Geoff Reedy)
+
 Wed Mar  3 16:47:10 2004  Owen Taylor  <otaylor@redhat.com>
 
         #109594, reported by Olivier Ripoll
index 1af4cb1ebcb90ffa5c3c544cc5b29df462c281ad..08c49f91b3d0962dc7d4e35ec7c33b86310e5d51 100644 (file)
@@ -2331,8 +2331,17 @@ gtk_propagate_event (GtkWidget *widget,
       while (TRUE)
        {
          GtkWidget *tmp;
-         
-         handled_event = !GTK_WIDGET_IS_SENSITIVE (widget) || gtk_widget_event (widget, event);
+
+         /* Scroll events are special cased here because it
+          * feels wrong when scrolling a GtkViewport, say,
+          * to have children of the viewport eat the scroll
+          * event
+          */
+         if (!GTK_WIDGET_IS_SENSITIVE (widget))
+           handled_event = event->type != GDK_SCROLL;
+         else
+           handled_event = gtk_widget_event (widget, event);
+             
          tmp = widget->parent;
          g_object_unref (widget);